In many systems, performance metrics associated with a virtualization system can be stored or associated with one or more virtual machines. When a user initiates one of these virtual machines, a determination is made about where to execute the virtual machine. In many instances, this determination is made based in part on the performance metrics stored or associated with the virtual machine. Thus, in this example and in many other systems, a virtualization system determines where to execute a virtual machine based in part on performance metrics associated with the virtual machine.
The decision about where to execute a virtual machine is sometimes based on the performance of that virtual machine. These performance metrics can include processor utilization, memory utilization, a value representative of average utilization of computing resources, bandwidth utilization, etc. In many instances, these metrics are the result of not only virtual machine performance, but also user behavior. When selecting a machine to execute the virtual machine, an assumption may be made that these performance metrics are indicative of the load the virtual machine will place on the machine selected to execute the virtual machine. In a pooled virtual desktop infrastructure (VDI) environment, users may be allocated virtual machines from a pool or group of virtual machines. Therefore the load placed on the machine executing the virtual machine is a result of both the actions taken by a user while logged into the virtual machine, and the virtual machine. What is needed is a system that not only takes into account the utilization metrics of a virtual machine, but more specifically which user was logged into the virtual machine when the utilization metrics were recorded. The utilization metrics recorded against the particular user can be used to determine an amount of load a user may likely impose on a virtual machine. A virtual machine can be allocated to the user based on the likely amount of load the user may place on the virtual machine.